// pages/scan-code/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    info: [],
    result: '',//上一个页面的扫码结果
    trace_code_text:'', //eg:你查询的追溯码为
    trace_code:'',  //追溯码
    goods_name:'',  //商品名
    show_info:false,  //是否显示追溯信息
    show_verifyinput:false, //是否显示验证码的输入框
    verify_input_val:'',  //用户输入的验证码
    cons_code:'',//接口返回的真实验证码
    verify_error:'',//输入验证码时的错误信息
    show_auto:false,//显示去授权按钮
    show_skip:false, //显示即将跳转倒计时
    second:5,//倒计时秒数
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    wx.showLoading({ title: '加载中' });
    var result = options.result;
    this.setData({result:result});
    var that = this;
    wx.request({
      url: getApp().globalData.ApiUrl+'/mobile/index.php?act=scan_code&op=index',
      //url:"http://192.168.3.126/mobile/index.php?act=scan_code&op=index",
      data: {
        result: result,
      },
      method:'post',
      header: {
        'Content-Type': 'application/x-www-form-urlencoded'
      },
      success:function(res){
        if (200 == res.data.code){
          var datas = res.data.datas;
          that.setData({
            info: datas.info,
            trace_code_text: '您查询的追溯码为',
            trace_code: datas.trace_code,
            goods_name: datas.goods_name,
            show_info: true,
          });
          if ((2 == datas.type) && (0 == datas.cons_count) ){
            that.setData({
              show_verifyinput: true,
              cons_code: datas.cons_code,              
            });
          }
        }else{
          if (res.data.login == 0 && res.data.login) {
            wx.navigateTo({
              url: '/pages/authorize/index',
            })
          };
          that.setData({
            trace_code_text: '无效追溯码',
            trace_code: '查询不到追溯信息',
            show_info: false,
          });
        }
      },
      complete: function () {
         wx.hideLoading();
      }
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    // 给上一个页面变量赋值
    var pages = getCurrentPages();
    var Page = pages[pages.length - 1];//当前页
    var prevPage = pages[pages.length - 2];  //上一个页面
    var info = prevPage.data;
    prevPage.setData({
      is_current_page: false
    })
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    wx.switchTab({
      url: "/pages/index/index",
    });
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  verifyInput:function(e){
    this.setData({
      verify_input_val:e.detail.value
    });
  },
  /**
   * 输入验证码进行验证
   */
  verifyClick:function(){
    if ('' == this.data.verify_input_val) {
      this.setData({
        verify_error: '请输入验证码'
      });
      return;
    }
    //获取经纬度
    var _this =  this;
    var latitude = '';
    var longitude = '';
    wx.getLocation({
      type: 'wgs84',
      success: function (res) {
        latitude = res.latitude
        longitude = res.longitude
        _this.verifyDo(latitude + ',' + longitude);
      },
      fail:function(res){
        _this.setData({ show_auto:true });
        
      }
    });
  },
  /**
   * 开始进行验证，调用验证接口
   */
  verifyDo:function(jwd){
    wx.showLoading({ title: '加载中' });
    var _this = this;
    var trace_code = this.data.trace_code;
    if (this.data.verify_input_val == this.data.cons_code) {
      wx.request({
        url: getApp().globalData.ApiUrl+'/mobile/index.php?act=scan_code&op=scen1verify',
        //url: "http://192.168.3.126/mobile/index.php?act=scan_code&op=scen1verify",
        data: {
          trace_code: trace_code,
          jwd:jwd,
        },
        method: 'post',
        header: {
          'Content-Type': 'application/x-www-form-urlencoded'
        },
        success:function(res){
          if(200==res.data.code){
            _this.countDown();
          }else{
            _this.setData({ verify_error: '验证失败' });
          }
        },
        fail:function(res){
          _this.setData({ verify_error: '网络出现问题，请稍后再试' });
        },
        complete:function(res){
          wx.hideLoading();
        }
      });
      
    } else {
      this.setData({verify_error: '验证码错误，请输入有效的验证码'});
      wx.hideLoading();
    }
    
  },
  /**
   * input得到焦点
   */
  verifyFocus:function(){
    this.setData({
      verify_error: '',
      show_auto: false
    });
  },
  /**
   * 从授权页面返回
   */
  handleSetting:function(e) {
    if (e.detail.authSetting['scope.userLocation']) {
      this.verifyFocus();
    }
  },
  /**
   * 跳转的倒计时
   */
  countDown:function(){
    this.setData({
      show_skip:true
    });
    var residue_second = this.data.second;
    var _this = this;
    var result = this.data.result;
    var interval = setInterval(function () {
      
      _this.setData({
        second: residue_second,
      });
      if (residue_second < 1) {
        clearInterval(interval);
        wx.navigateTo({
          url: "/pages/scan-code/index?result=" + result,
        });
      }
      residue_second--;
    }, 1000);
  }
})